$(document).ready(function() {
	$("#annullaButton").hide();
	$("#salvaButton").hide();
	$("input").focusin(toolTipAccount);
	
});

function modify() {
	
	var control =  controlAccount();
	 if (control == false ) {

			myConfirmationMOD("CONFERMA MODIFICA ACCOUNT ?","confirm","center");

		} else myAlert("Ci sono campi errati o non compilati!","warning","center");
		
}

function myAlert(testo,tipo,posizione){

	noty({text: ""+testo, layout :""+posizione , type: tipo , modal:true});

}

function myConfirmationMOD(testo,tipo,posizione) {

	

	 noty({
		text: testo, type :tipo , layout : posizione, modal:true,
		buttons: [
		          {addClass: 'btn btn-primary', text: 'SI', onClick: function(n) {

		        	  // this = button element
		        	  // $noty = $noty element

		        	  n.close();
		        	  noty({text: "MODIFICA EFFETTUATA", type: 'success' , layout: posizione, modal: true, buttons:[ {addClass:'btn btn-primary', text:'OK', onClick: function(){
		        		  $("#visual-account").submit();}
		        	  }]});
		          }

		          

	},
	{addClass: 'btn btn-danger', text: 'Cancel', onClick: function(n) {
		n.close();
		noty({text: "MODIFICA ANNULLATA", type: 'error' , layout : posizione, timeout: 1500, modal: true });

	}
	}
	]
});

}

function removeClasses() {
	
	$('#nome').closest(".form-group").removeClass("has-error");
	$('#cognome').closest(".form-group").removeClass("has-error");
	$('#nome-resp').closest(".form-group").removeClass("has-error");
	$('#cognome-resp').closest(".form-group").removeClass("has-error");
	$('#email').closest(".form-group").removeClass("has-error");
	$('#matricola').closest(".form-group").removeClass("has-error");
	$('#citta').closest(".form-group").removeClass("has-error");
	$('#codiceFiscale').closest(".form-group").removeClass("has-error");
	$('#anno-messa-ruolo').closest(".form-group").removeClass("has-error");
	$('#username').closest(".form-group").removeClass("has-error");
	$('#password').closest(".form-group").removeClass("has-error");
	$('#data-nascita').closest(".form-group").removeClass("has-error");
	$('#indirizzo').closest(".form-group").removeClass("has-error");

}

function controlAccount() {
	removeClasses();

	var lunghezzaUsername = $('#username').val().length;
	var lunghezzaPassword = $('#password').val().length;
	var lunghezzaNome = $('#nome').val().length;
	var valoreNome = $('#nome').val();
	var lunghezzaCognome = $('#cognome').val().length;
	var valoreCognome = $('#cognome').val();
	var lunghezzaEmail = $('#email').val().length;
	var lunghezzaCF = $('#codiceFiscale').val().length;
	var lunghezzaDataNascita = $('#data-nascita').val().length; // NON SAPREI COME FARE IL CONTROLLO ADATTO :D 
	var lunghezzaIndirizzo = $('#indirizzo').val().length;
	var lunghezzaCitta = $('#citta-nascita').val().length;
	var lunghezzaMatricola = $('#matricola').val().length;
	var lunghezzaAnnoMessaRuolo = $('#anno-messa-ruolo').val().length;
	
	var valoreDataNascita = $('#data-nascita').val().length;
	
	var dataVal = $('#data-nascita').val();
    var dataElement = dataVal.split("/");
    // Remove the slash from the String dataVal and returns an array 
    //with all elements DD,MM,YYYY if in our dataVal there is not a slash, it will return an undefined element.
    var lunghezzaDataSplitted=0;
    var dataToVerify="";
    for(var i = 0; i < dataElement.length; i++) {
    	lunghezzaDataSplitted+=dataElement[i].length;
    	dataToVerify+=dataElement[i];
    }
	
    var testDat =$('#data-nascita').prop('type');
	
	var campiErrati=false;
        
	if (lunghezzaUsername < 6 || lunghezzaUsername > 20) {
		campiErrati=true;

		$('#username').closest(".form-group").addClass("has-error");
	}
		
	if (lunghezzaPassword < 6 || lunghezzaPassword > 15) {
		campiErrati=true;

		$('#password').closest(".form-group").addClass("has-error");
	} 

	if (lunghezzaNome<3 || lunghezzaNome>15 || !checkOnlyLetters(valoreNome)) {
		campiErrati=true;
		$('#nome').closest(".form-group").addClass("has-error");
	}
		

	if (lunghezzaCognome<3 || lunghezzaCognome>15 || !checkOnlyLetters(valoreCognome)) {
		campiErrati=true;

		$('#cognome').closest(".form-group").addClass("has-error");
	}
		
	if (lunghezzaCF != 16 ) {
		campiErrati=true;

		$('#codiceFiscale').closest(".form-group").addClass("has-error");
	}
		

	if (lunghezzaIndirizzo < 8 || lunghezzaIndirizzo > 25) {
		campiErrati=true;

		$('#indirizzo').closest(".form-group").addClass("has-error");
	}

	if (lunghezzaEmail<10 || lunghezzaEmail>40) {
		campiErrati=true;
		$('#email').closest(".form-group").addClass("has-error");
	}

	if (lunghezzaMatricola !=10) {
		campiErrati=true;

		$('#matricola').closest(".form-group").addClass("has-error");
	}
	
	if (lunghezzaAnnoMessaRuolo !=4) {
		campiErrati=true;

		$('#anno-messa-ruolo').closest(".form-group").addClass("has-error");
	}
	if (lunghezzaCitta < 3 || lunghezzaCitta > 20 ) {
		campiErrati=true;

		$('#citta-nascita').closest(".form-group").addClass("has-error");
	}
	
	if(testDat != "date") {
		
		if (valoreDataNascita!=10 || dataElement == null || (isNaN(dataToVerify)) || lunghezzaDataSplitted!=8) {
			campiErrati=true;
			$('#data-nascita').closest(".form-group").addClass("has-error");
		}
	}

	return campiErrati;
}

function checkOnlyLetters(st) {
	
	var onlyLetters = /^[a-zA-Z]*$/;
	
	var array = st.split(" ");
	
	var length = array.length;
	var string="";
	for(var i = 0 ; i < length ; i++ ) {
	  string+=""+array[i];
	}

	return onlyLetters.test(string);
}

function toolTipAccount(){
	$('#username').tooltip({		              
		'selector': '',
		'title': 'Un Username con lunghezza compresa tra 6 e 20 caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#password').tooltip({		              
		'selector': '',
		'title': 'Una password con lunghezza compresa tra 6 e 15 caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#nome').tooltip({		              
		'selector': '',
		'title': 'Un testo con lunghezza compresa tra 3 e 15 caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#cognome').tooltip({		              
		'selector': '',
		'title': 'Un testo con lunghezza compresa tra 3 e 15 caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#codiceFiscale').tooltip({		              
		'selector': '',
		'title': 'Un testo con lunghezza compresa di 16 caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#data-nascita').tooltip({		              
		'selector': '',
		'title': 'Un testo con formato GG/MM/AAAA',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#indirizzo').tooltip({		              
		'selector': '',
		'title': 'Un testo con lunghezza compresa tra 8 e 25 caratteri',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#citta-nascita').tooltip({		              
		'selector': '',
		'title': 'Un testo con lunghezza compresa tra 3 e 20 caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#email').tooltip({		              
		'selector': '',
		'title': 'Email con lunghezza compresa tra 10 e 40 caratteri con formato user@sito.it ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#matricola').tooltip({		              
		'selector': '',
		'title': 'Testo con lunghezza di 10  caratteri ',
		'trigger': 'focus',
		'placement': 'right'
	});

	$('#anno-messa-ruolo').tooltip({		              
		'selector': '',
		'title': 'Stringa numerica  nel formato AAAA',
		'trigger': 'focus',
		'placement': 'right'
	});

}

function accountRichiama(){
	abilitaForm();
	sparisciTasti();
};

function accountRichiama2(){
	disabilitaForm();
	sparisciTasti2();
};

function disabilitaForm(){
	$(".form-control").attr('disabled', 'disabled');
};

function abilitaForm(){
	$(":disabled").removeAttr("disabled");
	
};

function sparisciTasti2(){
	 $("#modificaButton").show();
	 $("#eliminaButton").show();
	 $("#annullaButton").hide();
	 $("#salvaButton").hide();
}
function abilitaForm(){
	$(":disabled").removeAttr("disabled");	
};

 function sparisciTasti(){
	 $("#modificaButton").hide();
	 $("#eliminaButton").hide();
	 $("#annullaButton").show();
	 $("#salvaButton").show();
 }
  
 $(window).on('load', function() {
	 $("#annullaButton").hide();
	 $("#salvaButton").hide();
	 
});
 